AWS Transfer for SFTP の Workshopをやってみた
はじめに
AWS Transfer Familyを利用する機会があり、今までに触ったことがなかったため、Workshopをやってみました。
AWS Transfer Familyは、Amazon S3 やAmazon EFS に対してファイルを送受信できる転送サービスです。
今回利用したWorkshopは、文章は英語のみですが、Google翻訳すると、違和感なく文章を読み進めることができました。
Workshopを行う前にやること
事前に以下の動画でサービスを把握することをおすすめします。
下記記事は、Transfer Familyの設定項目や構成例を把握できるため、一読ください
Workshopで理解できること
- AWS Transfer for SFTPサーバーの構築方法が学べます
- クライアントPCからAWS Transfer for SFTP サーバーへのアクセスでIP制限する方法が学べます
- 論理ディレクトリを使用して、ユーザーのアクセス制御方法が理解できます。
論理ディレクトリについては、下記の記事が分かりやすいです。
• TransferFamilyの論理ディレクトリについて調べてみた
• https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/logical-dir-mappings.html
作成する構成
Workshopでは、下記の構成を作成します。
引用:https://github.com/aws-samples/aws-transfer-sftp-ip-whitelisting-workshop/tree/master
目次
- モジュール 1
- リソースを作成する
- CloudFormationで、AWS Transfer for SFTP サーバー以外のリソースをデプロイします
- AWS Transfer for SFTP サーバーを手動で作成します
- リソースを作成する
- モジュール 2
- ユーザーを作成し、SFTP サーバー経由でS3にファイルをアップロードする
- クライアントPCからAWS Transfer for SFTP サーバーへのアクセスでIP制限ができることをテストします
- ユーザーを作成し、SFTP サーバー経由でS3にファイルをアップロードする
- モジュール 3
- 論理ディレクトリを使用して、ユーザーのアクセスを制御する
- 複数のユーザーのアクセスを管理するため、特定のディレクトリに対して、各ユーザーごとにアクセス制限をかけます。さらに、複数のバケットにまたがるフォルダにアクセスできるユーザーを作成します
- 論理ディレクトリを使用して、ユーザーのアクセスを制御する
- モジュール 4
- リソース削除
- オプション モジュール 5
- VPC ピアリングを使用して内部 IP アクセスを許可する
事前準備
- SFTPクライアントソフトをインストール
- 私はFileZillaをインストールしました
各章の注意点やコメント
- モジュール 1
- CloudFormationのテンプレートは、東京リージョンが用意されておりませんでした。私はバージニアリージョンを利用しました。
- ドキュメントには説明がなかった部分が2つありました。
- セキュリティグループのアタッチが必要でしたので、とりあえずデフォルトセキュリティグループをアタッチしました
- 追加の詳細を設定は、デフォルトのままです。
- VPCエンドポイントが自動作成されておりました。SFTP サーバーとの間のすべてのネットワーク トラフィックは、このエンドポイントを経由します。
- このエンドポイントのセキュリティグループを編集して、SFTP クライアントからのIPを許可します。
- モジュール 2
- 下記コマンドでSSH鍵を作成しました
$ ssh-keygen -P "" -f transfer-key -N ""Enter $ cat transfer-key.pub ssh-rsa AAAAB3NzaC1yc
- FileZillaの場合、以下の設定でファイルをアップロードできました。
- 下記コマンドでSSH鍵を作成しました
- モジュール 3
- ユーザーに対してアクセス制限をするには、スクリプトを用意して実行する必要があり、不便に思いました。マネジメントコンソールからできれば便利ですね。
- Workshopで紹介されたスクリプト自体は使い回せるので、使う機会はありそうだと思います。
- スクリプトの実行は、CloudShell上で行うのが簡単でおすすめです。
- ユーザーに対してアクセス制限をするには、スクリプトを用意して実行する必要があり、不便に思いました。マネジメントコンソールからできれば便利ですね。
最後に
今回は、AWS Transfer for SFTPのWorkshopをやってみました。
AWS Transfer for SFTPサーバーへのIP制限や論理ディレクトリを使用してユーザーごとのアクセス制御を理解できました。
AWS Transfer Familyで対応しているプロトコルには、FTPやFTPSなどがあり、ユーザーの管理方法も複数あるため、今後色々試してみたいと思います。